home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Presentations / Presentations ’93 / Macintosh as Internet Server ƒ / inetd / in.rshd / RshD.h < prev    next >
Text File  |  1993-03-16  |  2KB  |  75 lines

  1. //---------------------------------------------------------------------
  2. //
  3. //    Copyright © 1992 David Peterson.
  4. //    All rights reserved.
  5. //
  6. //    Permission to use, copy, modify, and distribute this software for
  7. //    any purpose and without fee is hereby granted, provided that the
  8. //    above copyright notice appear in all copies and that both that
  9. //    copyright notice and this permission notice appear in supporting
  10. //    documentation.
  11. //
  12. //---------------------------------------------------------------------
  13.  
  14. #ifndef __DAEMONAPP__
  15. #include <DaemonApp.h>
  16. #endif
  17. #ifndef __MACTCPCOMMONTYPES__
  18. #include <MacTCPCommonTypes.h>
  19. #endif
  20. #ifndef __CLIST__
  21. #include <CList.h>
  22. #endif
  23. #ifndef __MYUTILS__
  24. #include <myUtils.h>
  25. #endif
  26.  
  27. class RshD;
  28.  
  29. class Command : public CItem {
  30. public:
  31.     StreamPtr    fStdOut;
  32.     StreamPtr    fStdErr;
  33.     
  34.     RshD*        fShell;
  35.     Boolean        fRelease;
  36.     
  37.                 Command(StreamPtr stream, RshD* shell);
  38.                 ~Command();
  39.                 
  40.     Boolean        Initialize();
  41.     
  42.     void        GetStr(char* buff, int len);
  43.     void        ExtractCommandName(char* instr, char* cmdName, int len);
  44.     
  45.     void        SendOK();
  46.     void        SendError(char* msg);
  47.     
  48.     Boolean        FindCommand(char* cmdName, FSSpec* cmdSpec);
  49.     Boolean        FindToolServer(PSNPtr psn);
  50.     
  51.     void        LaunchProcess(FSSpec* cmd, char* cmdString);
  52.     void        GiveToToolServer(PSNPtr psn, char* cmdString);
  53.     
  54.     Boolean        OpenSecond(char* port);
  55. };
  56.  
  57. class RshD : public DaemonApp {
  58. typedef DaemonApp Inherited;
  59. public:
  60.     CList            fCommandList;
  61.  
  62.     void            HandleNewStream(StreamPtr stream);
  63.     
  64.     virtual void    InstallAEHandlers();
  65.     
  66.     void            LoseIt(Command* command);
  67. };
  68.  
  69. extern "C" {
  70.     pascal OSErr    AEStreamHandler(AppleEvent *messagein, AppleEvent *reply, long refIn);
  71.  
  72.     pascal OSErr    AEToolOutput(AppleEvent *messagein, AppleEvent *reply, long refIn);
  73.     pascal OSErr    AEAnswerHandler(AppleEvent *messagein, AppleEvent *reply, long refIn);
  74. };
  75.